/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Controlador;

import com.db4o.Db4o;
import com.db4o.ObjectContainer;
import com.db4o.ext.DatabaseClosedException;
import com.db4o.ext.DatabaseReadOnlyException;
import com.db4o.ext.Db4oIOException;
import com.db4o.query.Predicate;
import java.util.List;
import modelo.Classe;
import modelo.Pessoas;

/**
 *
 * @author Ronaldo
 */
public class GeremciaPessoas {

    private static ObjectContainer banco = Db4o.openFile("Dados/Pessoas.db40");

    public static ObjectContainer conectar() {
        return banco;
    }

    public static void desconectar() {
        banco.close();
    }

    public boolean gravarPessoas(Pessoas pessoa) {

        try {
            banco.store(pessoa);
            return true;
        } catch (DatabaseClosedException | DatabaseReadOnlyException e) {
            System.out.println("Erro:" + e.getMessage());
            return false;
        } finally {
        }
    }

    public int localizarUltimoCodigo() {
        try {
            List<Pessoas> lista = banco.query(new Predicate<Pessoas>() {

                @Override
                public boolean match(Pessoas o) {
                    return true;
                }
            });
            if (!lista.isEmpty()) {
                return lista.get(lista.size() - 1).getCod();
            } else {
                return 0;
            }
        } catch (Db4oIOException | DatabaseClosedException e) {
            return 0;
        } finally {
        }
    }

//    public Pessoas localizarCodigo(final String cod) {
//        try {
//            List<Pessoas> lista = banco.query(new Predicate<Pessoas>() {
//
//                @Override
//                public boolean match(Pessoas o) {
//                    return o.get.contains(cod);
//                }
//            });
//            if (!lista.isEmpty()) {
//                return lista.get(0);
//            } else {
//                return null;
//            }
//        } catch (Db4oIOException | DatabaseClosedException e) {
//            return null;
//        } finally {
//        }
//
//
//    }

    public Pessoas localizarCpf(final String cpf) {
        try {
            List<Pessoas> lista = banco.query(new Predicate<Pessoas>() {

                @Override
                public boolean match(Pessoas o) {
                    return o.getCpf().contains(cpf);
                }
            });
            if (!lista.isEmpty()) {
                return lista.get(0);
            } else {
                return null;
            }
        } catch (Db4oIOException | DatabaseClosedException e) {
            return null;
        } finally {
        }


    }
}
